

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=auto>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/hello_lixi.gitee.io/img/fluid.png">
  <link rel="icon" href="/hello_lixi.gitee.io/img/fluid.png">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="author" content="Mr.LI">
  <meta name="keywords" content="">
  
    <meta name="description" content="计算机基础知识">
<meta property="og:type" content="article">
<meta property="og:title" content="计算机基础知识">
<meta property="og:url" content="https://xistudycode.gitee.io/hello_lixi.gitee.io/2022/12/09/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/index.html">
<meta property="og:site_name" content="Welcome to the technology blog">
<meta property="og:description" content="计算机基础知识">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208093157070.png">
<meta property="og:image" content="c:/Users/李曦/AppData/Roaming/Typora/typora-user-images/image-20221208093318010.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208093340471.png">
<meta property="og:image" content="https://img-blog.csdnimg.cn/dbc4ed195664418a9ba4f1bd8d5f8dde.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAU3RheS0taHVuZ3J5,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208162330087.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/9350f568bba74e59b48d9884c106522d.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208164138859.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/d0c50-linux2bfile2bsystem2bhierarchy.jpg">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209103911799.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209103925557.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209105239767.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209105252048.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/202107162322511.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/20210717000640512.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/d76921de8a6f649c6b47e49adaf98327.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/cf0a2c2e52164148a20a579984d5f727.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113230458.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113331301.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/677c4f7c7cb74f5faaba84a33a258472.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113528848.png">
<meta property="og:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113738522.png">
<meta property="article:published_time" content="2022-12-09T08:43:59.799Z">
<meta property="article:modified_time" content="2022-12-09T08:49:49.697Z">
<meta property="article:author" content="Mr.LI">
<meta property="article:tag" content="计算机基础知识复习+学习">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208093157070.png">
  
  
    <meta name="referrer" content="no-referrer-when-downgrade">
  
  
  <title>计算机基础知识 - Welcome to the technology blog</title>

  <link  rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css" />



  <link  rel="stylesheet" href="https://lib.baomitu.com/github-markdown-css/4.0.0/github-markdown.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/hint.css/2.7.0/hint.min.css" />

  <link  rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />



<!-- 主题依赖的图标库，不要自行修改 -->
<!-- Do not modify the link that theme dependent icons -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">


<link  rel="stylesheet" href="/hello_lixi.gitee.io/css/main.css" />


  <link id="highlight-css" rel="stylesheet" href="/hello_lixi.gitee.io/css/highlight.css" />
  
    <link id="highlight-css-dark" rel="stylesheet" href="/hello_lixi.gitee.io/css/highlight-dark.css" />
  




  <script id="fluid-configs">
    var Fluid = window.Fluid || {};
    Fluid.ctx = Object.assign({}, Fluid.ctx)
    var CONFIG = {"hostname":"xistudycode.gitee.io","root":"/hello_lixi.gitee.io/","version":"1.9.3","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":""},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":true,"follow_dnt":true,"baidu":null,"google":null,"gtag":null,"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/hello_lixi.gitee.io/local-search.xml"};

    if (CONFIG.web_analytics.follow_dnt) {
      var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
      Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
    }
  </script>
  <script  src="/hello_lixi.gitee.io/js/utils.js" ></script>
  <script  src="/hello_lixi.gitee.io/js/color-schema.js" ></script>
  

  

  

  

  

  

  

  



  
<meta name="generator" content="Hexo 5.4.2"></head>


<body>
  

  <header>
    

<div class="header-inner" style="height: 70vh;">
  <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand" href="/hello_lixi.gitee.io/">
      <strong>xBlog</strong>
    </a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/hello_lixi.gitee.io/">
                <i class="iconfont icon-home-fill"></i>
                首页
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/hello_lixi.gitee.io/archives/">
                <i class="iconfont icon-archive-fill"></i>
                归档
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/hello_lixi.gitee.io/categories/">
                <i class="iconfont icon-category-fill"></i>
                分类
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/hello_lixi.gitee.io/tags/">
                <i class="iconfont icon-tags-fill"></i>
                标签
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/hello_lixi.gitee.io/about/">
                <i class="iconfont icon-user-fill"></i>
                关于
              </a>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
              &nbsp;<i class="iconfont icon-search"></i>&nbsp;
            </a>
          </li>
          
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">&nbsp;<i
                class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

  

<div id="banner" class="banner" parallax=true
     style="background: url('/hello_lixi.gitee.io/img/default.png') no-repeat center center; background-size: cover;">
  <div class="full-bg-img">
    <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
      <div class="banner-text text-center fade-in-up">
        <div class="h2">
          
            <span id="subtitle" data-typed-text="计算机基础知识"></span>
          
        </div>

        
          
  <div class="mt-3">
    
      <span class="post-meta mr-2">
        <i class="iconfont icon-author" aria-hidden="true"></i>
        Mr.LI
      </span>
    
    
      <span class="post-meta">
        <i class="iconfont icon-date-fill" aria-hidden="true"></i>
        <time datetime="2022-12-09 16:43" pubdate>
          2022年12月9日 下午
        </time>
      </span>
    
  </div>

  <div class="mt-1">
    
      <span class="post-meta mr-2">
        <i class="iconfont icon-chart"></i>
        
          25k 字
        
      </span>
    

    
      <span class="post-meta mr-2">
        <i class="iconfont icon-clock-fill"></i>
        
        
        
          208 分钟
        
      </span>
    

    
    
      
        <span id="busuanzi_container_page_pv" style="display: none">
          <i class="iconfont icon-eye" aria-hidden="true"></i>
          <span id="busuanzi_value_page_pv"></span> 次
        </span>
        
      
    
  </div>


        
      </div>

      
    </div>
  </div>
</div>

</div>

  </header>

  <main>
    
      

<div class="container-fluid nopadding-x">
  <div class="row nomargin-x">
    <div class="side-col d-none d-lg-block col-lg-2">
      

    </div>

    <div class="col-lg-8 nopadding-x-md">
      <div class="container nopadding-x-md" id="board-ctn">
        <div id="board">
          <article class="post-content mx-auto">
            <!-- SEO header -->
            <h1 style="display: none">计算机基础知识</h1>
            
              <p class="note note-info">
                
                  
                    本文最后更新于：2022年12月9日 下午
                  
                
              </p>
            
            
              <div class="markdown-body">
                
                <h1 id="计算机基础知识"><a href="#计算机基础知识" class="headerlink" title="计算机基础知识"></a>计算机基础知识</h1><h2 id="1-硬件知识"><a href="#1-硬件知识" class="headerlink" title="1. 硬件知识"></a>1. 硬件知识</h2><p><strong>计算机体系结构和主要部件的基本工作原理</strong></p>
<p>计算机系统分为硬件和软件系统。计算机硬件是计算机系统中的物质基础，是摸得见看得着的。计算机软件是程序、数据、相关文档的集合，包括系统软件和应用软件。计算机系统的组成如下</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208093157070.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221208093157070"></p>
<h3 id="1-1-计算机硬件系统"><a href="#1-1-计算机硬件系统" class="headerlink" title="1.1 计算机硬件系统"></a>1.1 计算机硬件系统</h3><p>计算机硬件5大组成部分：运算器、控制器、存储器、输入设备和输出设备。计算机硬件的电线结构包括：单总线结构、双总线结构和采用通道的大型系统结构。</p>
<p><img src="C:\Users\李曦\AppData\Roaming\Typora\typora-user-images\image-20221208093318010.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221208093318010"></p>
<p><strong>单总线结构</strong>：使用一组系统总线将计算机的各个部件连接起来，各部件通过总线交换信息。一般用在小型或者微型计算机。</p>
<p>优点：易于扩充新I/O设备，I/O设备的寄存器和主存储器可以统一编址使CPU访问I/O更 加灵活。</p>
<p>缺点：限制了信息传送的吞吐率。</p>
<p><strong>双总线结构</strong>：常见的就是在内存和CPU之间设置一组专有的高速存储总线。分为以CPU为中心的双总线和以存储器为中心的双总线。</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208093340471.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221208093340471"></p>
<p><strong>以存储器为中心的双总线结构：</strong>主存储器通过存储总线和CPU交换信息，同时可以通过系统总线与I/O设备交换信息。</p>
<p>优点：信息传输效率高。缺点：增加硬件成本。</p>
<p><strong>冯·诺依曼体系结构的主要特点是：</strong></p>
<p>计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成<br>数据和程序以二进制代码形式不加区别地存放在存储器中，存放的位置由地址决定<br>控制器是根据存放在存储器中的指令序列（即程序）进行工作，并由一个程序计数器控制指令的执行，控制器具有判断能力，能以计算结果为基础，选择不同的工作流程。即计算机能自动逐条取出指令和执行任务。</p>
<p>计算机的五大部分中，<strong>控制器和运算器</strong>是其核心部分，称为中央处理器单元（CPU，Center Process Unit）。<br>主机 = CPU + 内部存储器。<br>外部设备 = 输入设备 + 输出设备。</p>
<p><strong>运算器</strong><br>运算器是对二进制数进行运算的部件。它在控制器的控制下执行程序中的指令，完成各种算术运算、逻辑运算、比较运算、移位运算以及字符运算等。<br>运算器由算术逻辑部件（ALU）、寄存器等组成。ALU用于完成运算，寄存器用于暂存参加运算的操作数或中间结果。<br>运算器的主要技术指标是运算速度，单位MIPS（百万指令每秒）。</p>
<p><strong>存储器</strong><br>存储器是用来存储数据和程序的部件，使用具有两种稳定状态的物理器件来存储信息，如磁芯、半导体、光盘等。<br>位bit是存储器最小的存储单位，若干位构成一个存储单元，其中可以存放一个二进制数据或一条指令。一个存储单元中存入的信息称为一个“字”，一个字所包含的二进制的位数称为“字长”。目前计算机的字长一般为32位或64位。计算机的字长越大，其精确度就越高。内存储器（内存）具有存取速度快、可直接与运算器及控制器交换信息等特点，但其容量一般不大。其中，随机存取存储器用来存放正在执行的程序及所需要的数据，具有存取速度快、集成度高、电路简单等优点，但断电后信息不能保存。只读存储器用来存放监控程序、操作系统等专用程序。<br>（内存储器中的内容在电源断掉以后就消失，又被称为暂时存储器。）<br>外存储器用来存放需要长期保存的信息，其特点是存储容量大、成本低，但它不能直接与运算器及控制器交换信息，需要时可成批地与内存交换信息，存取速度慢。</p>
<p><strong>控制器</strong></p>
<p>控制器是指挥计算机的各个部件按照指令的功能要求协调工作的部件，是计算机的“神经中枢”。<br>控制器的主要特点是：<strong>采用内存程序控制方式</strong>。即在使用计算机时必须预先编写（或由编译程序自动生成）由计算机指令组成的程序并存入内存，由控制器依次读取并执行。</p>
<p><img src="https://img-blog.csdnimg.cn/dbc4ed195664418a9ba4f1bd8d5f8dde.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAU3RheS0taHVuZ3J5,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<h3 id="1-2计算机的工作原理"><a href="#1-2计算机的工作原理" class="headerlink" title="1.2计算机的工作原理"></a>1.2计算机的工作原理</h3><p><strong>指令系统</strong></p>
<p>指令是能被计算机识别并执行的二进制代码，它规定了计算机能完成的某一种操作。一台计算机所能执行的所有指令的集合称为该台计算机的指令系统。</p>
<blockquote>
<p>注意：不同类型的计算机的指令系统不同。</p>
</blockquote>
<p>计算机只能识别并执行机器指令，所编写的源代码只能翻译为机器指令后才能被执行。</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208162330087.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221208162330087"></p>
<p>操作码规定了该指令进行的操作种类（如加、减、存数、取数等）；地址码给出了操作数、结果以及下一条指令的地址。<br><strong>计算机工作原理</strong><br>计算机在工作时，有两种信息在流动：数据信息和指令控制信息。<br>数据信息包括原始数据、中间结果、结果数据、源程序等，这些信息从存储器读入运算器进行运算，结束结果再存入存储器或传送到输出设备。指令控制信息是由控制器对指令进行分析、解释后向各部件发出的控制命令，指挥各部件协调地工作。</p>
<h3 id="1-3计算机存储器"><a href="#1-3计算机存储器" class="headerlink" title="1.3计算机存储器"></a>1.3计算机存储器</h3><p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/9350f568bba74e59b48d9884c106522d.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="img"></p>
<p>存储器的层次结构： 在这个存储结构中，越靠近上层的速度越快，容量越小，造价也越高；越靠近下层速度越慢，容量越大，当然价格越低。</p>
<p>前边主存8GB，由于主存靠近上层，速度是比较快的；机身存储128GB也就是辅存，它的速度会更慢。我们平时下载的APP如微信、QQ等都是存储在辅存中的，它的读写速度是比较慢的，CPU不能直接与辅存进行数据交互，CPU的数据处理速度很快，如果让CPU和辅存直接进行数据交互，那么CPU的速度会被辅存所拖累，所以要先把辅存的内容调到主存中，才能被CPU访问。</p>
<p><strong>CPU与主存</strong>：CPU可以直接从主存中读数据，也可以直接往主存中写数据。</p>
<p><strong>主存与Cache</strong>：在主存之上还有一层高数缓冲存储器Cache，CPU可以从Cache中读数据，也可以往Cache中 写数据；Cache可以从主存中读数据Cache被更改的数据也可以写回主存。</p>
<p>增加高速缓冲存储器的作用：主存读写速度虽然已经 很快了，但是它的速度远远跟不上CPU，为了缓解主存和CPU的速度矛盾，计算机硬件把当前可能被频繁使用的数据从主存复制一份到 Cache当中，CPU可以直接读取Cache中的副本数据，由于Cache是更靠近上层的存储层，所以读写速度更快。设置Cache是为了缓解CPU和主存之间的速度矛盾</p>
<p><strong>寄存器：</strong>在Cache之上还有寄存器，它是更靠近CPU的，比如ACC累加寄存器，MQ乘商寄存器等寄存器的读写速度要比Cache快得多，所以CPU在进行加减乘除等数值运算的时候会把操作数先保存在寄存器中，CPU内部的寄存器的数量是十分有限的。</p>
<p><strong>辅存</strong>：计算机里的机械硬盘就是辅存</p>
<p><strong>外存：</strong>如磁带、光盘、U盘等</p>
<p><strong>主存和辅存：</strong>主存和辅存之间的数据交换是由硬件和操作系统来实现的，操作系统需要负责实现页面置换算法，根据页面置换算法确定哪些数据需要从主存置换到外存，主存和Cache之间的数据是由硬件自动完成的。</p>
<p>主存和辅存之间的数据交换就构成了虚拟存储系统，解决了主存容量不够的问题</p>
<h3 id="1-4-计算机的性能指标※"><a href="#1-4-计算机的性能指标※" class="headerlink" title="1.4 计算机的性能指标※"></a>1.4 计算机的性能指标※</h3><p>计算机的主要技术性能指标有主频、字长、内存容量、存取周期、运算速度及其他指标。</p>
<p>第一、主频（时钟频率）：是指计算机CPU在单位时间内输出的脉冲数。它在很大程度上决定了计算机的运行速度。单位MHz。</p>
<p>第二、字长：是指计算机的运算部件能同时处理的二进制数据的位数。字长决定了计算机的运算精度。</p>
<p>第三、内存容量：是指内存贮器中能存贮的信息总字节数。能常以8个二进制位(bit)作为一个字节（Byte）。</p>
<p>第四、存取周期：存贮器连续二次独立的”读”或”写”操作所需的最短时间，单位来纳秒（ns,1ns=10-9s）。存储器完成一次”读”或”写”操作所需的时间称为存储器的访问时间（或读写时间）。</p>
<p>第五、运算速度：是个综合性的指标，单位为MIPS（百万条指令/秒）。影响运算速度的因素，主要是主频和存取周期，字长和存储容量也有影响。</p>
<p>电子计算机，通称电脑，简称计算机，是现代的一种利用电子技术和相关原理根据一系列指令来对数据进行处理的机器。电脑可以分为两部分：软件系统和硬件系统。第一台电脑是1946年2月15日在美国宾夕法尼亚大学诞生的ENIAC通用电子计算机。</p>
<p>计算机所相关的技术研究叫计算机科学，以数据为核心的研究称为信息技术。人们把没有安装任何软件的计算机称为裸机。随着科技的发展，现在新出现一些新型计算机有：生物计算机、光子计算机、量子计算机等。</p>
<p>传统电脑系统的硬体单元一般可分为输入单元、输出单元、算术逻辑单元、控制单元及记忆单元，其中算术逻辑单元和控制单元合称中央处理单元。</p>
<h3 id="1-5-进位计数制及其相互转换※"><a href="#1-5-进位计数制及其相互转换※" class="headerlink" title="1.5 进位计数制及其相互转换※"></a>1.5 进位计数制及其相互转换※</h3><p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221208164138859.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221208164138859"></p>
<p><strong>十进制转二进制</strong></p>
<h3 id="1-6-字符和字符串※"><a href="#1-6-字符和字符串※" class="headerlink" title="1.6 字符和字符串※"></a>1.6 字符和字符串※</h3><p><strong>字符</strong>包括字母、数字、运算符号、标点符号和其他符号，以及一些功能性符号。字符在计算机内存放，应规定相应的代表字符的二进制代码。代码的选用要与有关外围设备的规格取得一致。这些外围设备包括键盘控制台的输入输出、打印机的输出等等。</p>
<p>字符作输入时，要自动转换为二进制代码存于机内;输出时，计算机内二进制代码自动转化为字符，两者的转换全是靠外围设备实现的。</p>
<p>字符是数据结构中最小的数据存取单位。通常由8个二进制位(一个字节)来表示一个字符。</p>
<p>**字符串或串(String)**是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n&gt;=0)。它是编程语言中表示文本的数据类型。在程序设计中，字符串（string）为符号或数值的一个连续序列，如符号串（一串字符）或二进制数字串（一串二进制数字）。</p>
<p>通常以串的整体作为操作对象，如：在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是：长度相等，并且各个对应位置上的字符都相等。设p、q是两个串，求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。</p>
<p><strong>常见编码的识别与转换</strong></p>
<p>(1)ASCII编码</p>
<p>(2)Base64编码</p>
<p>(3)shellcode编码</p>
<p>(4)Quoted-printable编码</p>
<p>(5)XXencode编码</p>
<p>(6)UUencode编码</p>
<p>(7)URL编码</p>
<p>(8)Unicode编码</p>
<p>(9)Escape/Unescape编码</p>
<p>(10)HTML实体编码</p>
<p>(11)莫尔斯电码(Morse Code)</p>
<h2 id="2-软件知识"><a href="#2-软件知识" class="headerlink" title="2. 软件知识"></a>2. 软件知识</h2><h3 id="2-1-计算机操作系统的功能"><a href="#2-1-计算机操作系统的功能" class="headerlink" title="2.1 计算机操作系统的功能"></a>2.1 计算机操作系统的功能</h3><p>从资源管理观点看，操作系统具有四大功能：<br>处理机管理—–存储器管理——设备管理——–文件管理<br>为了方便用户使用OS，OS向用户提供了用户接口</p>
<p><strong>⑴处理机管理</strong><br>主要任务：<br>是对处理机进行分配并对其运行实施有效管理。对处理机的管理，可归结为对进程的管理。</p>
<p>进程管理包括以下四方面功能：<br>⑴ 进程控制<br>当用户作业要运行时，应为之建立一个或多个进程，并为它分配除处理机以外的所有资源，将它放入进程就绪队列。当进程运行完成时，立即撤消该进程，以便及时释放其所占有的资源。<br>⑵ 进程同步<br>所谓进程同步是指系统对并发执行的进程进行协调。有两种协调方式：<br>进程互斥方式 进程同步方式<br>方式1.是最基本的进程同步方式，是使诸进程以互斥方式访问临界资源。<br>方式2.对彼此相互合作去完成共同任务的诸进程，由同步机制对它们的执行次序加以协调。<br>⑶ 进程通信<br>对于相互合作的进程，在它们运行时，相互之间往往要交换一定的信息，这种进程间所进行的信息交换称为进程通信。<br>⑷ 调度<br>包括作业调度、进程调度两步。作业调度是按一定算法从后备队列中选出若干个作业，为它们分配资源，建立进程，使之成为就绪进程，并把它们按一定算法插入就绪队列。进程调度是指按一定算法，如最高优先算法，从进程就绪队列中选出一进程，把处理机分配给它，为该进程设置运行现场，并使之投入运行。</p>
<p><strong>⑵存储器管理</strong><br>主要任务：<br>⑴ 为多道程序的并发运行提供良好环境。<br>⑵ 便于用户使用存储器。<br>⑶ 提高存储器的利用率。<br>⑷ 能从逻辑上来扩充内存。</p>
<p><strong>⑶设备管理</strong><br>主要任务有以下五个：<br>⑴ 完成用户提出的I/O请求。<br>⑵ 为用户分配I/O设备。<br>⑶ 提高CPU和I/O设备的利用率。<br>⑷ 提高I/O速度。<br>⑸ 方便用户使用I/O设备</p>
<p><strong>⑷文件管理</strong><br>文件管理应具有下述四个功能：<br>⑴ 文件存储空间的管理<br>⑵ 目录管理<br>⑶ 文件读、写管理<br>⑷ 文件的共享与保护</p>
<p><strong>⑸用户接口</strong><br>为了方便用户使用操作系统，操作系统又向用户提供了“用户与操作系统的接口”。通常以命令或系统调用的形式提供给用户。</p>
<h3 id="2-2计算机操作系统的类型"><a href="#2-2计算机操作系统的类型" class="headerlink" title="2.2计算机操作系统的类型"></a>2.2计算机操作系统的类型</h3><p>1、windows操作系统</p>
<p>Microsoft Windows系列操作系统是在微软给IBM机器设计的MS-DOS的基础上设计的图形操作系统。</p>
<p>2、UNIX操作系统</p>
<p>UNIX基本都是安装在服务器上，没有用户界面，基本上都是命令操作。</p>
<p>3、linux操作系统</p>
<p>继承了UNIX的许多特性，还加入自己的一些新的功能。linux是开源的，免费的。谁都可以拿去做修改，然后开发出有自己特色的操作系统。做的比较好的有：红旗，ubuntu，Fedora，Debian等。这些都可以装在台式机或笔记本上。</p>
<p>4、mac操作系统</p>
<p>macOS，前称“MacOS X”或“OS X”，是一套运行于苹果Macintosh系列计算机上的操作系统。</p>
<p>5、嵌入式操作系统</p>
<p><strong>按照应用领域分类</strong></p>
<p>1）桌面操作系统</p>
<p>桌面操作系统顾名思义，是具有图形化界面的操作系统。Mac OS.Windows、Linux形成三足鼎立的局面。目前具有代表性的桌面操作系统有Windows系列，MACOSX系列。</p>
<p>2）服务器操作系统</p>
<p>服务器操作系统一般指的是安装在大型计算机上的操作系统。相对于桌面操作系统，服务器操作系统要承担额外的管理、配置、稳定、安全保证等功能。</p>
<p>目前具有代表性的服务器操作系统有Windows Server、Netware、UNIX、Linux。</p>
<p>3）嵌入式操作系统</p>
<p>嵌入式操作系统是一种用途广泛的系统软件，通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。</p>
<p><strong>按照源码开放程度分类</strong></p>
<p>1）开源操作系统</p>
<p>开源操作系统（open Source Operating System)，就是公开源代码的操作系统软件。可以遵循开源协议（GNU）进行使用、编译和再发布。在遵守GNU协议的前提下，任何人都可以免费使用，随意控制软件的运行方式。</p>
<p>目前具有代表性的开源操作系统有Linux、FreeBSD。</p>
<p>2）闭源操作系统</p>
<p>闭源操作系统和开源操作系统相反，指的是不开放源码的操作系统。</p>
<h3 id="2-3-进程与线程"><a href="#2-3-进程与线程" class="headerlink" title="2.3 进程与线程"></a>2.3 进程与线程</h3><p><strong>进程（Process）</strong> 是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础。 在当代面向线程设计的计算机结构中，进程是线程的容器。程序是指令、数据及其组织形式的描述，进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础。程序是指令、数据及其组织形式的描述，进程是程序的实体。</p>
<p><strong>线程（thread）</strong> 是操作系统能够进行运算调度的最小单位。它被包含在进程之中，是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流，一个进程中可以并发多个线程，每条线程并行执行不同的任务。</p>
<ol>
<li>线程在进程下行进（单纯的车厢无法运行）</li>
<li>一个进程可以包含多个线程（一辆火车可以有多个车厢）</li>
<li>不同进程间数据很难共享（一辆火车上的乘客很难换到另外一辆火车，比如站点换乘）</li>
<li>同一进程下不同线程间数据很易共享（A车厢换到B车厢很容易）</li>
<li>进程要比线程消耗更多的计算机资源（采用多列火车相比多个车厢更耗资源）</li>
<li>进程间不会相互影响，一个线程挂掉将导致整个进程挂掉（一列火车不会影响到另外一列火车，但是如果一列火车上中间的一节车厢着火了，将影响到所有车厢）</li>
<li>进程可以拓展到多机，进程最多适合多核（不同火车可以开在多个轨道上，同一火车的车厢不能在行进的不同的轨道上）</li>
<li>进程使用的内存地址可以上锁，即一个线程使用某些共享内存时，其他线程必须等它结束，才能使用这一块内存。（比如火车上的洗手间）－”互斥锁”</li>
<li>进程使用的内存地址可以限定使用量（比如火车上的餐厅，最多只允许多少人进入，如果满了需要在门口等，等有人出来了才能进去）－“信号量”</li>
</ol>
<h3 id="2-4-内存管理※※"><a href="#2-4-内存管理※※" class="headerlink" title="2.4 内存管理※※"></a>2.4 内存管理※※</h3><p><strong>内存管理主要有四个方面的功能：</strong><br>内存空间的分配与回收：由操作系统完成主存储器空间的分配和管理，使程序员摆脱存储分配的麻烦，提高编程效率。</p>
<p>地址转换：在多道程序环境下，程序中的逻辑地址与内存中的物理地址不可能一致，因此存储管理必须提供地址变换功能，把逻辑地址转换成相应的物理地址<br>存储保护和存储共享：保证各道作业在各自的存储空间内运行，互不干扰；同时充分利用内存空间，共享内存中存放的信息。<br>内存空间的扩充：利用虚拟存储技术从逻辑上扩充内存。</p>
<p> <strong>连续分配管理方式</strong></p>
<p>连续分配方式是指为一个用户程序分配一个连续的内存空间。主要包括单一连续分配、固定分区分配和动态分区分配。</p>
<ul>
<li>内部碎片：分配给某进程的内存区域中，有些部分没用上</li>
<li>外部碎片：是指内存中的某些空闲分区由于太小而难以利用</li>
</ul>
<p><strong>单一连续分配（无外部碎片，有内部碎片）</strong></p>
<p>在单一连续分配方式中，内存被分为系统区和用户区。系统区通常位于内存的低地址部分，用于存放操作系统相关数据;用户区用于存放用户进程相关数据。<br>内存中只能有一道用户程序，用户程序独占整个用户区空间。</p>
<ul>
<li>优点：实现简单;无外部碎片；可以采用覆盖技术扩充内存；不一定需要采取内存保护 。</li>
<li>缺点：只能用于单用户、单任务的操作系统中；有内部碎片；存储器利用率极低。</li>
</ul>
<p><strong>固定分区分配（无外部碎片，有内部碎片）</strong><br>固定分区分配是最简单的一种多道程序存储管理方式，它将用户内存空间划分为若干固定大小的分区，每个分区只装入一道作业，当有空闲分区时，便可再从外存的后备队列中选择适当大小的作业装入该分区。固定分区分配分为分区大小相等和分区大小不等两种方式。</p>
<ul>
<li>分区大小相等：适用于利用一台计算机去控制多个相同对象的场合，缺乏灵活性。程序太小则浪费内存，程序太大的分区装不下。</li>
<li>分区大小不等：划分多个较小的分区、适量的中等分区和少量的大分区，增加了灵活性。</li>
</ul>
<p><strong>动态分区分配（没有内部碎片，但有外部碎片）</strong><br>动态分区分配不预先分配内存，而是在进程装入内存时，根据进程的大小动态地建立分区，并使分区的大小正好适合进程的需要。系统中分区的大小和数目是可变的。</p>
<p>动态分区分配会产生外部碎片，克服外部碎片可以采用紧凑技术来解决，即操作系统不时地对进程进行移动和整理。但这需要重定位寄存器的支持，且相对费时。动态分区分配的策略有以下几种算法：</p>
<ol>
<li>首次适应算法：按地址从小到大为序，分配第一个符合条件的分区。</li>
<li>最佳适应算法：按空间从小到大为序，分配第一个符合条件的分区。</li>
<li>最坏适应算法：按空间从大到小为序，分配第一个符合条件的分区。</li>
<li>邻近适应算法：与首次适应相似，从上次查完的结束位置开始查找。</li>
</ol>
<p><strong>非连续分配管理方式</strong><br>非连续分配允许一个程序分散地装入不相邻的内存分区，但这也需要额外的存储空间去存储它们的索引，使得非连续分配方式的存储密度低于连续存储方式。<br>非连续分配管理方式根据分区的大小是否固定，分为分页存储管理方式和分段存储管理方式。在分页存储管理方式中，又根据运行作业时是否要把作业的所有页面都装入内存才能运行，分为基本分页存储管理方式和请求分页存储管理方式。</p>
<p><strong>基本分页存储管理方式</strong><br>不会产生外部碎片，只会产生少量的内部碎片<br>分页的基本思想：把主存空间划分为大小相等的块，块相对较小，作为主存的基本单位。每个进程也以块为单位进行划分，进程在执行时，以块为单位逐个申请主存中的块空间。</p>
<p>分页存储的基本概念如下：</p>
<p>页面和页面大小。进程中的块称为页，内存中的块称为页框，外存也以同样的单位进行划分，直接称为块。<br>页面大小应该适中，页面太小会使进程的页面数过多，这样页表就会过长，占用大量内存，而且也会增加硬件地址转换的开销，降低页面换入/换出的效率；页面太大又会使页内碎片增多，降低内存利用率。<br>地址结构。地址结构包含两部分，前一部分为页号P，后一部分为页内偏移量W。地址结构决定了虚拟内存的寻址空间有多大。<br>页号 = 逻辑地址 / 页面长度<br>页内偏移量 = 逻辑地址 % 页面长度<br>页表。记录进程页面和实际存放的内存块之间的对应关系。页表由页表项构成，一般存放在内存中。页表的作用是实现从页号到物理块号的映射。页表项的作用是找到该页在内存中的位置。<br>页表寄存器。存放页表的起始地址和页表长度。</p>
<p>逻辑地址到物理地址的变换过程如下：</p>
<p>计算页号Р和页内偏移量W，P=A/L，W=A%L<br>比较页号P和页表长度M，若P≥M，则产生越界中断，否则继续执行。（注意：页号是从0开始的,而页表长度至少是1，因此 P=M时也会越界)<br>查询页表，找到页号对应的页表项，确定页面存放的内存块号<br>用内存块号和页内偏移量得到物理地址<br>访问目标内存单元<br>分页管理方式存在的两个主要问题：</p>
<p>每次访存操作都需要进行逻辑地址到物理地址的转换，地址转换过程必须足够快，否则访存速度会降低。<br>每个进程引入页表，用于存储映射机制，页表不能太大，否则内存利用率会降低。</p>
<p>基本分段存储管理方式<br>不会产生内部碎片，会产生外部碎片</p>
<p>分页管理方式是从计算机地角度考虑设计的，目的是提高内存利用率，提升计算机的性能。分页通过硬件机制实现，对用户完全透明。<br>分段管理方式的提出则考虑了用户和程序员，以满足方便编程、信息保护和共享、动态增长及动态链接等多方面的需要。</p>
<h2 id="3-Linux基础"><a href="#3-Linux基础" class="headerlink" title="3 Linux基础"></a>3 Linux基础</h2><p>(1)常用基础命令</p>
<p>(2)根目录结构</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/d0c50-linux2bfile2bsystem2bhierarchy.jpg" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="img"></p>
<p>以下是对这些目录的解释：</p>
<ul>
<li><p><strong>/bin</strong>：<br>bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。</p>
</li>
<li><p><strong>/boot：</strong><br>这里存放的是启动 Linux 时使用的一些核心文件，包括一些连接文件以及镜像文件。</p>
</li>
<li><p><strong>/dev ：</strong><br>dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备，在 Linux 中访问设备的方式和访问文件的方式是相同的。</p>
</li>
<li><p><strong>/etc：</strong><br>etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。</p>
</li>
<li><p><strong>/home</strong>：<br>用户的主目录，在 Linux 中，每个用户都有一个自己的目录，一般该目录名是以用户的账号命名的，如上图中的 alice、bob 和 eve。</p>
</li>
<li><p><strong>/lib</strong>：<br>lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库，其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。</p>
</li>
<li><p><strong>/lost+found</strong>：<br>这个目录一般情况下是空的，当系统非法关机后，这里就存放了一些文件。</p>
</li>
<li><p><strong>/media</strong>：<br>linux 系统会自动识别一些设备，例如U盘、光驱等等，当识别后，Linux 会把识别的设备挂载到这个目录下。</p>
</li>
<li><p><strong>/mnt</strong>：<br>系统提供该目录是为了让用户临时挂载别的文件系统的，我们可以将光驱挂载在 /mnt/ 上，然后进入该目录就可以查看光驱里的内容了。</p>
</li>
<li><p><strong>/opt</strong>：<br>opt 是 optional(可选) 的缩写，这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。</p>
</li>
<li><p><strong>/proc</strong>：<br>proc 是 Processes(进程) 的缩写，/proc 是一种伪文件系统（也即虚拟文件系统），存储的是当前内核运行状态的一系列特殊文件，这个目录是一个虚拟的目录，它是系统内存的映射，我们可以通过直接访问这个目录来获取系统信息。<br>这个目录的内容不在硬盘上而是在内存里，我们也可以直接修改里面的某些文件，比如可以通过下面的命令来屏蔽主机的ping命令，使别人无法ping你的机器：</p>
<figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs awk">echo <span class="hljs-number">1</span> &gt; <span class="hljs-regexp">/proc/</span>sys<span class="hljs-regexp">/net/i</span>pv4/icmp_echo_ignore_all<br></code></pre></td></tr></table></figure></li>
<li><p><strong>/root</strong>：<br>该目录为系统管理员，也称作超级权限者的用户主目录。</p>
</li>
<li><p><strong>/sbin</strong>：<br>s 就是 Super User 的意思，是 Superuser Binaries (超级用户的二进制文件) 的缩写，这里存放的是系统管理员使用的系统管理程序。</p>
</li>
<li><p><strong>/selinux</strong>：<br> 这个目录是 Redhat/CentOS 所特有的目录，Selinux 是一个安全机制，类似于 windows 的防火墙，但是这套机制比较复杂，这个目录就是存放selinux相关的文件的。</p>
</li>
<li><p><strong>/srv</strong>：<br> 该目录存放一些服务启动之后需要提取的数据。</p>
</li>
<li><p><strong>/sys</strong>：</p>
<p>这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。</p>
<p>sysfs 文件系统集成了下面3种文件系统的信息：针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。</p>
<p>该文件系统是内核设备树的一个直观反映。</p>
<p>当一个内核对象被创建的时候，对应的文件和目录也在内核对象子系统中被创建。</p>
</li>
<li><p><strong>/tmp</strong>：<br>tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。</p>
</li>
<li><p><strong>/usr</strong>：<br> usr 是 unix shared resources(共享资源) 的缩写，这是一个非常重要的目录，用户的很多应用程序和文件都放在这个目录下，类似于 windows 下的 program files 目录。</p>
</li>
</ul>
<p>(3)进程管理</p>
<p>程序在运行后，我们需要了解进程的运行状态。查看进程的状态分为: 静态和动态两种方式</p>
<p>1.使用ps命令查看当前的进程状态(静态)<br>1)示例、ps -aux常用组合，查看进程 用户、PID、占用cpu百分比、占用内存百分比、状态、执行的命令等</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209103911799.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209103911799"></p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209103925557.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209103925557"></p>
<figure class="highlight cmd"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs cmd">#<span class="hljs-number">1</span>.在终端<span class="hljs-number">1</span>上运行vim<br><br>[root@oldzhang ~]# vim oldboy<br><br>\#<span class="hljs-number">2</span>.在终端<span class="hljs-number">2</span>上运行ps命令查看状态<br><br>[root@oldzhang ~] ps <span class="hljs-built_in">aux</span>      #S表示睡眠模式，+表示前台运行<br><br></code></pre></td></tr></table></figure>



<p>(4)UID 和 GID</p>
<p>Linux 系统中，每个用户的 ID 可以分为两种，分别是用户 ID(User ID，简称 UID)和组 ID(Group ID，简称 GID)，这与文件有拥有者和拥有群组两种属性相对应。</p>
<p>(5)权限设置</p>
<p>查看权限</p>
<p>查看当前目录下文件夹及文件权限，可以使用ll或者ls -l进行查看。</p>
<p><strong>解读实例权限</strong></p>
<p><strong>drwxr-xr-x 2 kali kali 4096 4月 7 11:02 dir1</strong></p>
<p><strong>第一位：</strong>“d”代表该文档为目录</p>
<p><strong>第二位到第四位当前目录属主所拥有的权限</strong></p>
<p><strong>rwx 421 7</strong></p>
<p><strong>第二位：</strong>[r]代表用户拥有对该目录可读的权限</p>
<p><strong>第三位：</strong>[w]代表用户对该目录有可写、可编辑、可修改的权限</p>
<p><strong>第四位：</strong>[x]代表用户对该目录有执行权限</p>
<p><strong>第五位到第七位当前目录用户组所拥有的权限</strong></p>
<p><strong>r-x 401 5 权限为“-”则代表没有权限</strong></p>
<p><strong>第五位：</strong>[r]代表用户拥有对该目录可读的权限</p>
<p><strong>第六位：</strong>无权限</p>
<p><strong>第七位：</strong>[x]代表用户对该目录有执行权限</p>
<p><strong>第八位到第十位其它用户对此目录拥有的权限（root超级管理员不受限制）</strong></p>
<p><strong>r-x 401 5 权限为“-”则代表没有权限</strong></p>
<p><strong>第八位：</strong>[r]代表用户拥有对该目录可读的权限</p>
<p><strong>第九位：</strong>无权限</p>
<p><strong>第十位:</strong> [x]代表用户对该目录有执行权限</p>
<p><strong>其它属性解读</strong></p>
<p><strong>2 kali kali 4096 4月 7 11:02 dir1</strong></p>
<p>**[2]:**链接数量</p>
<p>**[kali]:**属主</p>
<p><strong>[kali]：</strong>用户组</p>
<p><strong>[4096]：</strong>目录大小、字节数</p>
<p><strong>[ 4月 7 11:02]：</strong>创建时间</p>
<p><strong>[dir2]：</strong></p>
<p><strong>权限修改</strong></p>
<p><strong>如果需要修改权限可以通过chmod命令</strong>来改变文件或目录权限的命令，但是只有文件的属主和超级用户root才能执行这个命令。有两种模式，一种是采用权限字母和操作符表达式；另一种是采用数字。**</p>
<p>\1. root用户可以忽视权限设置（因为root用户可以改任何文件的权限）</p>
<p>\2. 权限会进行依次判断，先判断用户是否是属主，如果不是，再判断用户是否是属组，如果再不是，就是其他用户</p>
<p><strong>字母操作符表达模式</strong></p>
<p><strong>u掉表用户权限、g代表用户组权限、O代表其它用户权限、a所有用户权限</strong></p>
<p><strong>权限变更字符：[+]增加权限、[-]取消权限、[=]唯一设定权限，通过组合模式进行权限修改取消操作。</strong></p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209105239767.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209105239767"></p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209105252048.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209105252048"></p>
<h2 id="4-计算机网络"><a href="#4-计算机网络" class="headerlink" title="4. 计算机网络"></a>4. 计算机网络</h2><h3 id="4-1-计算机网络体系结构"><a href="#4-1-计算机网络体系结构" class="headerlink" title="4.1 计算机网络体系结构"></a>4.1 计算机网络体系结构</h3><p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/202107162322511.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<p>OSI 七层模型可分为：物理层、数据链路层、网络层、传输层、会话层、表示层、应用层，第三层统称为通信子网，主要完成数据传输的功能，高三层统称为资源子网，主要完成数据的处理等功能。</p>
<p><strong>应用层：</strong>其作用是通过应用程序间的交互来完成特定的网络应用<br>表示层：表示层的作用是处理两个通信系统中交换信息的表达方式，提供的服务有数据压缩，数据加密以及数据描述<br><strong>会话层：</strong>会话层负责管理主机间的会话进程，包括建立、管理及终止进程间的会话<br><strong>传输层：</strong>传输层主要负责主机中进程之间的通信，功能是端对端连接提供可靠服务<br><strong>网络层：</strong>网络层的主要任务是选择合适的网间路由和交换节点，确保数据按时成功传送，在发送数据的时候，它会将传输层的报文封装成分组和包从源端口向目的端口转发<br><strong>数据链路层：</strong>数据链路层是点对点的通信，它的任务是将网络层传来的ip数据报组装成帧，同时，会检测所受到的帧有无差错，如果有的话，就简单的丢弃掉，以免占用网络资源<br><strong>物理层：</strong>物理层作为参考模型的最低一层，主要实现的就是计算机节点之间的比特流的透明传输，尽可能地屏蔽传输介质和物理设备地影响。</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/20210717000640512.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="在这里插入图片描述"></p>
<p>OSI 参考模型在提出时，他们的理想是非常好的，但实际上，由于会话层、表示层、应用层都是在应用程序内部实现的，最终产出的是一个应用数据包，而应用程序之间是几乎无法实现代码的抽象共享的，这也就造成 OSI 设想中的应用程序维度的分层是无法实现的，例如，我们几乎不会认为数据的压缩、加密算法算是一种协议，而会话的概念则更为抽象，难以用协议来进行描述，所以在后来的 TCP/IP 协议框架的设计中，便将表示层和会话层与应用层整合在一起，让整个过程更为清晰明了。</p>
<p>常用网络设备和各类通信设备</p>
<p>常见网络设备有：交换机、路由器、防火墙、网桥、集线器、网关、VPN服务器、网络接口卡（NIC）、无线接入点（WAP）、调制解调器、5G基站、光端机、光纤收发器、光缆</p>
<p>4.物理层</p>
<p>(1)数据传输方式</p>
<p>(2)传输介质分类</p>
<p>(3)物理层设备</p>
<p>(4)数据链路层</p>
<p>(5)局域网的基本概念与体系结构</p>
<p>(6)以太网的工作原理</p>
<p>(7)以太网的 MAC 帧</p>
<p>(8)以太网的传输介质</p>
<p>(9)无线局域网</p>
<p>(10)广域网</p>
<p>(11)数据链路层设备</p>
<p>(12)★虚拟局域网（VLAN)</p>
<p>5.网络层</p>
<p>(1)子网划分和无分类编址 CIDR</p>
<p>(2)路由算法</p>
<p>(3)★IP 地址的分类、IP 数据报格式、NAT</p>
<p>1）由于A类地址第一位是0，所以前八位最大是0111 1111，也就是127</p>
<p>所以A类地址IP地址范围是0.0.0.0~127.255.255.255，由于网络号7位，主机号24位，所以，一个网络号内可以有（2的24次方-2）台主机，总共有2的7次方个网络号，所以总共可以表示的主机数：2的7次方✖（2的24次方-2）</p>
<p>去掉两个特殊的IP地址，全零和全1，全零表示整个网络，全1表示这个网络下所有主机，用于广播</p>
<p>（2）B类地址前两位是10，所以前八位最小是1000 0000（128），最大是1011 1111（191）</p>
<p>所以B类地址IP范围是128.0.0.0~191.255.255.255，由于网络号14位，主机号16位，所以，一个网络号内可以有（2的16次方-2）台主机，总共有2的14次方个网络号，所以总共可以表示的主机数：2的14次方✖（2的16次方-2）</p>
<p>（3）C类地址前两位是10，所以前八位最小是1100 0000（192），最大是1101 1111（223）</p>
<p>所以C类地址IP范围是192.0.0.0<del>223.255.255.255，所以B类地址IP范围是128.0.0.0</del>191.255.255.255，由于网络号21位，主机号8位，所以，一个网络号内可以有（2的8次方-2）台主机，总共有2的21次方个网络号，所以总共可以表示的主机数：2的21次方✖（2的8次方-2）</p>
<img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/d76921de8a6f649c6b47e49adaf98327.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="img" style="zoom:80%;" />



<p>无分类地址CIDR:</p>
<p>不再有分类地址的概念，32 比特的 IP 地址被划分为两部分，前面是网络号，后面是主机号。</p>
<p>a.b.c.d/x，其中 /x 表示前 x 位属于网络号,比如 10.100.122.2/24，这种地址表示形式就是 CIDR，/24 表示前 24 位是网络号，剩余的 8 位是主机号。</p>
<p>还有另一种划分网络号与主机号形式，那就是子网掩码</p>
<p>(4)ARP、DHCP 和 ICMP</p>
<p>(5)3 种常用路由选择协议：RIP、OSPF、BGP</p>
<p>(6)IP 组播、移动 IP 的基本概念</p>
<p>(7)路由器的组成和功能</p>
<p>(8)★IPV6</p>
<p>6.传输层</p>
<p>(1)TCP 的流量控制和拥塞控制机制</p>
<p>(2)★TCP 报文格式</p>
<img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/cf0a2c2e52164148a20a579984d5f727.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="在这里插入图片描述" style="zoom:80%;" />

<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113230458.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209113230458"></p>
<p>端口号<br>TCP源端口(Source Port): 源计算机上的应用程序的端口号，占 16 位<br>TCP目的端口(Destination Port): 目标计算机的应用程序端口号，占 16 位</p>
<p>序列号<br>CP序列号(Sequence Number): 占 32 位；它表示本报文段所发送数据的第一个字节的编号。在 TCP 连接中，所传送的字节流的每一个字节都会按顺序编号。当SYN标记不为1时，这是当前数据分段第一个字母的序列号；如果SYN的值是1时，这个字段的值就是初始序列值（ISN），用于对序列号进行同步。这时，第一个字节的序列号比这个字段的值大1，也就是ISN加1。<br>确认号字段</p>
<p>确认号<br>TCP 确认号（Acknowledgment Number，ACK Number）：占 32 位。它表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。其值是接收计算机即将接收到的下一个序列号，也就是下一个接收到的字节的序列号加1。<br>数据偏移字段</p>
<p>数据偏移字段<br>TCP 首部长度（Header Length）：数据偏移是指数据段中的“数据”部分起始处距离 TCP 数据段起始处的字节偏移量，占 4 位。其实这里的“数据偏移”也是在确定 TCP 数据段头部分的长度，告诉接收端的应用程序，数据从何处开始。</p>
<p>保留字段<br>保留(Reserved): 占 4 位；为 TCP 将来的发展预留空间，目前必须全部为 0</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113331301.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209113331301"></p>
<p>窗口大小字段<br>窗口大小(Window Size): 占 16 位；它表示从 Ack Number 开始还可以接收多少字节的数据量，也表示当前接收端的接收窗口还有多少剩余空间。该字段可以用于 TCP 的流量控制。</p>
<p>TCP 校验和字段<br>校验位(TCP Checksum): 占 16 位；它用于确认传输的数据是否有损坏。发送端基于数据内容校验生成一个数值，接收端根据接收的数据校验生成一个值。两个值必须相同，才能证明数据是有效的。如果两个值不同，则丢掉这个数据包。Checksum 是根据伪头 + TCP 头 + TCP 数据三部分进行计算的。</p>
<p>紧急指针字段<br>紧急指针(Urgent Pointer): 仅当前面的 URG 控制位为 1 时才有意义。它指出本数据段中为紧急数据的字节数，占 16 位；当所有紧急数据处理完后，TCP 就会告诉应用程序恢复到正常操作。即使当前窗口大小为 0，也是可以发送紧急数据的，因为紧急数据无须缓存。</p>
<p>(3)★UDP 数据报格式</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/677c4f7c7cb74f5faaba84a33a258472.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="img"></p>
<p>UDP报文主体分为两个部分:UDP报头(占8个字节)+UDP数据/UDP载荷<br>UPD报头:源端口号+目的端口号+包长度+校验和<br>1.源端口号<br>占16位,也就是2个字节</p>
<p>2.目的端口号<br>占16位,2个字节</p>
<p>3.包长度<br>即UDP长度,总共16位,占两个字节<br>UDP报文长度=UDP报头(首部)+UDP载荷<br>该字段保存了UDP报文的长度,单位为字节<br>2个字节能表示的数据范围是0~65535,也就是能够表示的报文长度是65536字节(Byte),转换成KB,65536/1024 = 64 KB 这就是一个UDP报文所能表示的最大长度.<br>4.校验和<br>数据在传输的时候,本质上是0/1bit流,通过光信号或者电信号来表示,如果在传输的时候收到干扰,就可能会出现比特翻转现象.这个时候就需要校验和校验数据是否出错.</p>
<p>3.UDP的特点<br>UDP 传输的过程类似于寄信。<br>1.无连接<br>知道对端的 IP 和端口号就直接进行传输，不需要建立连接；<br>2.不可靠<br>没有任何安全机制，发送端发送数据报以后，如果因为网络故障该段无法发到对方， UDP 协议层也不会给应用层返回任何错误信息；<br>3.面向数据报<br>应用层交给 UDP 多长的报文， UDP 原样发送，既不会拆分，也不会合并；<br>用 UDP 传输 100 个字节的数据：<br>如果发送端一次发送100个字节，那么接收端也必须一次接收100个字节；而不能循环接收10次，每次接收10个字节。</p>
<p><strong>基于****UDP的应用层协议</strong></p>
<blockquote>
<ul>
<li>NFS：网络文件系统</li>
<li>TFTP：简单文件传输协议</li>
<li>DHCP：动态主机配置协议</li>
<li>BOOTP：启动协议（用于无盘设备启动）</li>
<li>DNS：域名解析协议</li>
</ul>
</blockquote>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113528848.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209113528848"></p>
<p>7.★★应用层</p>
<p>(1)域名解析过程</p>
<p>4、域名解析过程<br>以<a target="_blank" rel="noopener" href="http://www.baidu.com为例,主要通过五个步骤进行域名解析/">www.baidu.com为例，主要通过五个步骤进行域名解析</a></p>
<ol>
<li>浏览器访问 <a target="_blank" rel="noopener" href="http://www.baidu.com,询问本地/">www.baidu.com，询问本地</a> DNS 服务器是否缓存了该网址解析后的 IP 地址。</li>
<li>如果本地 DNS 服务器没有缓存的话，就去 root-servers.net 根服务器查询该网址对应的 IP 地<br>址。</li>
<li>根服务器返回顶级域名服务器的网址 gtld-servers.net，然后本地 DNS 服务器去顶级域名服务<br>器查询该网址对应的 IP 地址。</li>
<li>顶级域名服务器返回 <a target="_blank" rel="noopener" href="http://www.baidu.com/">www.baidu.com</a> 主区域服务器的地址，然后本地 DNS 服务器去 <a target="_blank" rel="noopener" href="http://www.ba/">www.ba</a><br>idu.com 主区域服务器查询此域名对应的 IP 地址。</li>
<li>本地 DNS 服务器拿到 <a target="_blank" rel="noopener" href="http://www.baidu.com/">www.baidu.com</a> 解析后的 IP 地址后，缓存起来以便备查，然后把解析<br>后的 IP 地址返回给浏览器。 </li>
</ol>
<p>(2)FTP 的工作原理</p>
<p>(3)HTTP抓包与调试</p>
<p>(4)Fiddler的使用与操作</p>
<p>(5)Wireshark的使用与操作</p>
<p>(6)服务端跳转</p>
<p>(7)客户端跳转</p>
<p>(8)常见搜索引擎高级语法的使用</p>
<p>(9)HTTP 请求与响应</p>
<p>(10)HTTP 的请求方法</p>
<p>(11)URL的特征分析</p>
<p>(12)HTTP 消息头</p>
<p>(13)HTTP状态码</p>
<p><img src="https://raw.githubusercontent.com/hellelixi/note-image01/main/images/image-20221209113738522.png" srcset="/hello_lixi.gitee.io/img/loading.gif" lazyload alt="image-20221209113738522"></p>
<p>302：（临时移动） 服务器目前从不同位置的网页响应请求，但请求者应继续使用原有位置来进行以后的请求。</p>
<p>400:（错误请求) 服务器不理解请求的语法。</p>
<p>401：(未授权) 请求要求身份验证。 对于需要登录的网页，服务器可能返回此响应。</p>
<p>402：该状态码是为了将来可能的需求而预留的。</p>
<p>403：（禁止) 服务器拒绝请求。</p>
<p>404：（未找到) 服务器找不到请求的网页。</p>
<p>500：（服务器内部错误） 服务器遇到错误，无法完成请求。</p>
<p>501：（尚未实施） 服务器不具备完成请求的功能。 例如，服务器无法识别请求方法时可能会返回此代码。</p>
<p>(14)使用浏览器执行前端 JavaScript</p>
<p>(15)使用 Node.js 执行后端 JavaScript</p>
<h2 id="5-数据库"><a href="#5-数据库" class="headerlink" title="5.数据库"></a>5.数据库</h2><p>数据库系统</p>
<h3 id="5-1-数据库系统的基本概念"><a href="#5-1-数据库系统的基本概念" class="headerlink" title="5.1 数据库系统的基本概念"></a><strong>5.1 数据库系统的基本概念</strong></h3><h3 id="5-2-数据库的分类和常见数据库软件"><a href="#5-2-数据库的分类和常见数据库软件" class="headerlink" title="5.2 数据库的分类和常见数据库软件"></a>5.2 数据库的分类和常见数据库软件</h3><p>数据库共有2种类型：关系型数据库、非关系型数据库 。</p>
<p>1、关系数据库</p>
<p>MySQL、PostgreSQL、Microsoft Access、SQLite、Oracle、SQL Serve</p>
<p>几乎所有的数据库管理系统都配备了一个开放式数据库连接（ODBC）驱动程序，令各个数据库之间得以互相集成。</p>
<p>2、非关系型数据库（NoSQL）</p>
<p>redis、MongoDB、Memcache、HBase、BigTable、Cassandra、CouchDB、Neo4J。</p>
<p>区别</p>
<p>关系型数据库最典型的数据结构是表，由二维表及其之间的联系所组成的一个数据组织<br>优点：<br>1）、易于维护：都是使用表结构，格式一致；<br>2）、使用方便：SQL语言通用，可用于复杂查询；<br>3）、复杂操作：支持SQL，可用于一个表以及多个表之间非常复杂的查询。<br>缺点：<br>1）、读写性能比较差，尤其是海量数据的高效率读写；<br>2）、固定的表结构，灵活度稍欠；<br>3）、高并发读写需求，传统关系型数据库来说，硬盘I/O是一个很大的瓶颈。</p>
<h3 id="5-3-SQL-的特点"><a href="#5-3-SQL-的特点" class="headerlink" title="5.3 SQL 的特点"></a>5.3 SQL 的特点</h3><h3 id="5-4-SQL查询、插入、删除、更新操作★★"><a href="#5-4-SQL查询、插入、删除、更新操作★★" class="headerlink" title="5.4 SQL查询、插入、删除、更新操作★★"></a>5.4 SQL查询、插入、删除、更新操作★★</h3><p>可以用SQL语言正确完成复杂查询操作 </p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><code class="hljs sql"><span class="hljs-keyword">SELECT</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">FROM</span> `gzb`<br><br><span class="hljs-comment">--根据现有的表创建目标表</span><br><span class="hljs-comment">-- 显示表gzb的建表语句</span><br><span class="hljs-keyword">show</span> <span class="hljs-keyword">create</span> <span class="hljs-keyword">table</span> gzb<br><br><span class="hljs-comment">--根据gzb的建表语句创建表gzb_v2</span><br><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> `gzb_v2` (<br>  `id` <span class="hljs-type">int</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">NULL</span>,<br>  `name` <span class="hljs-type">varchar</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>,<br>  `zhiwei` <span class="hljs-type">varchar</span>(<span class="hljs-number">255</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>,<br>  `sex` <span class="hljs-type">varchar</span>(<span class="hljs-number">2550</span>) <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">NULL</span>,<br>  <span class="hljs-keyword">PRIMARY</span> KEY (`id`)<br>) ENGINE<span class="hljs-operator">=</span>InnoDB <span class="hljs-keyword">DEFAULT</span> CHARSET<span class="hljs-operator">=</span>utf8mb3<br></code></pre></td></tr></table></figure>

<p>(1)查询多个列</p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><code class="hljs sql"><span class="hljs-comment">--向表gzb_v2插入数据</span><br><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> gzb_v2 <span class="hljs-keyword">values</span> (<span class="hljs-string">&#x27;1&#x27;</span>,<span class="hljs-string">&#x27;张三&#x27;</span>,<span class="hljs-string">&#x27;会计&#x27;</span>,<span class="hljs-string">&#x27;男&#x27;</span>);<br><span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> gzb_v2<br><span class="hljs-keyword">SELECT</span> id, score, name <span class="hljs-keyword">FROM</span> students;<br><br><span class="hljs-comment">--对目标表的所有列插入数据</span><br><span class="hljs-keyword">insert</span> <span class="hljs-keyword">into</span> gzb_v2 (id,name,zhiwei,sex) <span class="hljs-keyword">values</span> (<span class="hljs-string">&#x27;2&#x27;</span>,<span class="hljs-string">&#x27;李四&#x27;</span>,<span class="hljs-string">&#x27;财务&#x27;</span>,<span class="hljs-string">&#x27;女&#x27;</span>)<br><span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> gzb_v2<br><br><span class="hljs-comment">--更新数据把张三的职位改成项目经理</span><br><span class="hljs-keyword">UPDATE</span> gzb_v2 <br><span class="hljs-keyword">set</span> zhiwei <span class="hljs-operator">=</span> <span class="hljs-string">&#x27;项目经理&#x27;</span><br><span class="hljs-keyword">where</span> name <span class="hljs-operator">=</span> <span class="hljs-string">&#x27;张三&#x27;</span><br><span class="hljs-keyword">select</span> <span class="hljs-operator">*</span> <span class="hljs-keyword">from</span> gzb_v2<br><br><span class="hljs-comment">--删除名字叫张三的记录</span><br><span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">from</span> gzb_v2<br><span class="hljs-keyword">where</span> name <span class="hljs-operator">=</span> <span class="hljs-string">&#x27;张三&#x27;</span><br><br></code></pre></td></tr></table></figure>

<p>(2)查询去重</p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs sql"><span class="hljs-keyword">select</span> <span class="hljs-keyword">distinct</span> 访客id ,浏览时间 <span class="hljs-keyword">from</span> 淘宝日销售数据表;<br></code></pre></td></tr></table></figure>

<p>(3)SQL聚合函数</p>
<p>(4)SQL 字符串函数</p>
<p>(5)SQL数值函数</p>
<p>(6)SQL⽇期和时间函数</p>
<p>(7)SQL数据分组</p>
<h3 id="5-5-常见数据库的备份操作★★"><a href="#5-5-常见数据库的备份操作★★" class="headerlink" title="5.5 常见数据库的备份操作★★"></a>5.5 常见数据库的备份操作★★</h3><p> 数据库备份的分类<br>1）物理备份<br>物理备份：对数据库操作系统的物理文件（如数据文件、日志文件等）的备份。</p>
<p>物理备份方法：</p>
<p>冷备份(脱机备份) ：是在关闭数据库的时候进行的<br>热备份(联机备份) ：数据库处于运行状态，依赖于数据库的日志文件<br>温备份：数据库锁定表格（不可写入但可读）的状态下进行备份操作<br>2）逻辑备份<br>逻辑备份：对数据库逻辑组件（如：表等数据库对象）的备份。</p>
<p>即以sql语句的形式，把库、表结构、表数据保存下来。</p>
<p>数据库的备份策略<br>完全备份（全量备份）：每次对数据库进行完整的备份。<br>差异备份： 备份自从上次完全备份之后被修改过的文件。<br>增量备份： 只有在上次完全备份或者增量备份后被修改的文件才会被备份。<br>常见的备份方法<br>物理冷备： （完全备份）<br>备份时数据库处于关闭状态，直接打包数据库文件<br>备份速度快，恢复时也是最简单的<br>专用备份工具mydump或mysqlhotcopy （完全备份，逻辑备份）<br>mysqldump常用的逻辑备份工具 （导出为sql脚本）<br>mysqlhotcopy仅拥有备份MyISAM和ARCHIVE表<br>启用二进制日志进行增量备份 （增量备份）<br>进行增量备份，需要刷新二进制日志<br>第三方工具备份<br>免费的MySQL热备份软件Percona XtraBackup</p>
<h3 id="5-6-通过数据库日志恢复数据★★"><a href="#5-6-通过数据库日志恢复数据★★" class="headerlink" title="5.6 通过数据库日志恢复数据★★"></a>5.6 通过数据库日志恢复数据★★</h3><h3 id="5-7-常见数据库的客户端工具的使用★"><a href="#5-7-常见数据库的客户端工具的使用★" class="headerlink" title="5.7 常见数据库的客户端工具的使用★"></a>5.7 常见数据库的客户端工具的使用★</h3><p>Navicat、SQLyog、DataGrip 等等。</p>
<h3 id="5-8-使用数据库编程★★"><a href="#5-8-使用数据库编程★★" class="headerlink" title="5.8 使用数据库编程★★"></a>5.8 使用数据库编程★★</h3><p>能够在MySQL、SQLite上通过编程的方式开发应用程序，完成对数据库的各种操作；能够使用 ODBC 、JDBC进行数据库应用程序的设计</p>
<h3 id="5-9-数据库连接地址、连接口令的分析方法★★"><a href="#5-9-数据库连接地址、连接口令的分析方法★★" class="headerlink" title="5.9 数据库连接地址、连接口令的分析方法★★"></a>5.9 数据库连接地址、连接口令的分析方法★★</h3><p>jdbc:mysql://localhost:3306/数据库名称?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true&amp;allowMultiQueries=true</p>
<p><strong>useSSL=false 意思是：</strong></p>
<p>默认值为true，至于为什么使用false，个人理解默认为true的话，会使用SSL认证安全性较高，但是跨平台操作，比如使用linux时可能会出现问题，所以大多数会使用false，通过账号密码进行连接</p>
<p><strong>useUnicode=true&amp;characterEncoding=utf-8   意思是:</strong></p>
<p>mysql数据库用的是gbk编码，而项目的mysql数据库需要的是utf-8编码，所以在url后面添加useUnicode=true&amp;characterEncoding=utf-8”，表示在往数据库中存数据时会用UTF-8的格式将数据解码为字节码，然后再将解码后的字节码重新使用GBK编码存放到数据库中。从数据库中取数据时，会将数据按GBK格式解码为字节码，然后再将字节码重新按照UTF-8格式编码数据返回给客户端</p>
<p><strong>serverTimezone=Asia/Shanghai  意思是</strong>：</p>
<p>设置服务器的时区为亚洲/上海的时区</p>
<p><strong>allowPublicKeyRetrieval=true  意思是：</strong></p>
<p>允许客户端从服务器获取公钥</p>
<p><strong>allowMultiQueries=true  意思是：</strong><br>可以在sql语句后携带分号，实现多语句执行</p>
<h3 id="5-10-数据挖掘和数据仓库基础知识"><a href="#5-10-数据挖掘和数据仓库基础知识" class="headerlink" title="5.10 数据挖掘和数据仓库基础知识"></a>5.10 数据挖掘和数据仓库基础知识</h3><p><strong>数据挖掘主要特性：应用性、工程性、集合性、交叉性</strong></p>
<p>1）、应用性：</p>
<p>数据挖掘是理论算法和应用实践的完美结合</p>
<p>2）、工程性：</p>
<p>数据挖掘由多个步骤组成的工程化过程：数据准备和管理、数据预处理和转换、挖掘算法开发和应用、结果展是和檐正以及 知识积累和使用</p>
<p>3）、集合性<br>数据挖掘是多功能的集和，常用功能：数据探索分析、关联规则挖掘、时间序列模式挖掘、分类预测、聚类分析、异常检测、数据可视化、链接分析等</p>
<p> 4）、交叉性：</p>
<p>统计分析、模式识别、机器学习、人工智能、信息检索、数据库等</p>
<p><strong>数据挖掘应用场景和分类</strong></p>
<p><strong>常见挖掘算法：关联规则、时间序列、聚类</strong></p>
<p>聚类。聚类类似于分类,但与分类的目的不同,是针对数据的相似性和差异性将一组数据分为几个类别。属于同一类别的数据间的相似性很大,但不同类别之间数据的相似性很小,跨类的数据关联性很低。</p>
<p>关联规则。关联规则是隐藏在数据项之间的关联或相互关系,即可以根据一个数据项的出现推导出其他数据项的出现。关联规则的挖掘过程主要包括两个阶段:第一阶段为从海量原始数据中找出所有的高频项目组;第二极端为从这些高频项目组产生关联规则。关联规则挖掘技术已经被广泛应用于金融行业企业中用以预测客户的需求,各银行在自己的ATM机上通过捆绑客户可能感兴趣的信息供用户了解并获取相应信息来改善自身的营销。</p>
<p><strong>数据挖掘算法分类</strong></p>
<p>1、连接分析：PageRank。</p>
<p>2、相关分析：Apriori。</p>
<p>3、<a target="_blank" rel="noopener" href="https://so.csdn.net/so/search?q=%E5%88%86%E7%B1%BB%E7%AE%97%E6%B3%95&spm=1001.2101.3001.7020">分类算法</a>：C4.5，简单的贝叶斯，SVM，KNN，Adaboost，CART。</p>
<p>4、<a target="_blank" rel="noopener" href="https://so.csdn.net/so/search?q=%E8%81%9A%E7%B1%BB%E7%AE%97%E6%B3%95&spm=1001.2101.3001.7020">聚类算法</a>：K-Means，EM。</p>
<p><strong>一、PageRank</strong></p>
<p>论文被引用的次数越多，其影响就越大。</p>
<p>网页入口越多，入链质量越高，网页质量越高。</p>
<p>PageRank原理</p>
<p>网页的影响=阻尼影响+所有入链集合页面的加权影响之和。</p>
<p>一个网页的影响：所有进入链的页面的加权影响之和。</p>
<p>一个网页对其他网页的影响是：自身影响/链接数量。</p>
<p>并非所有用户都是通过跳转链接来上网的，还有其他方式，比如直接输入网站访问。</p>
<p>因此需要设置阻尼因子，代表用户根据跳转链接上网的概率。</p>
<p>PageRank比喻说明</p>
<p>1、微博</p>
<p>一个人的微博粉丝数量不一定等于他的实际影响力，还要看粉丝的质量。</p>
<p>如果是僵尸粉没用，但是如果是很多大V或者明星关注的话，影响力很大。</p>
<p>2、店铺经营</p>
<p>顾客较多的店铺质量较好，但要看顾客是否是托。</p>
<p>3、兴趣</p>
<p>对感兴趣的人或事投入相对较多的时间，对其相关的人和事也投入一定的时间。被关注的人或事越多，其影响力/受众就越大。</p>
<p>关于阻尼因子</p>
<p>1、通过邻居的影响来判断你的影响，但是如果你不能通过邻居来访问你，并不意味着你没有影响力，因为可以直接访问你，所以引入了阻尼因子的概念。</p>
<p>2、海洋除了河流流经外，还有雨水，但下雨是随机的。</p>
<p>3、提出阻尼系数，或者解决一些网站显然有大量的链（链），但影响很大。</p>
<p>出链例子：hao123导航网页，出链多，入链少。</p>
<p>入链例子：百度谷歌等搜索引擎，入链很多，出链很少。</p>
<p><strong>二、Apriori(相关分析)</strong></p>
<p>关联挖掘关系，从消费者交易记录中发现商品之间的关系。</p>
<p>Apriori原理</p>
<p>1、支持度</p>
<p>商品组合出现的次数与总次数之比。</p>
<p>五次购买，四次购买牛奶，牛奶支持度为4/5=0.8。</p>
<p>五次购买，三次购买牛奶+面包，牛奶+面包支持3/5=0.6。</p>
<p>2、置信度</p>
<p>购买商品A，购买商品B的概率有多大，发生A时发生B的概率有多大。</p>
<p>买了四次牛奶，其中两次买了啤酒，(牛奶-&gt;啤酒)的可信度是2/4=0.5。</p>
<p>三次买啤酒，其中两次买牛奶，(啤酒-&gt;牛奶)的可信度为2/3-0.67。</p>
<p>3、提升度</p>
<p>衡量商品A的出现，提高商品B出现概率的程度。</p>
<p>提升度(A-&gt;B)=置信度(A-&gt;B)/支持度(B)。</p>
<p>提升度&gt;1，有提升；提升度=1，无变化；提升度1，下降。</p>
<p>4、项集频繁</p>
<p>项集：可以是单一商品，也可以是商品组合。</p>
<p>频繁的项集是支持度大于最小支持度的项集(MinSupport)。</p>
<p>计算过程</p>
<p>（1）从K=1开始，经常筛选项集。</p>
<p>（2）在结果中，组合K+1项集，重新筛选。</p>
<p>（3）循环1,2步。K-1项集的结果是最终结果，直到找不到结果。</p>
<p>扩展：FP-Growth算法。</p>
<p>Apriori算法需要多次扫描数据库，性能低，不适合大数据量。</p>
<p>FP-growth算法，通过构建FP树的数据结构，将数据存储在FP树中，只需在构建FP树时扫描数据库两次，后续处理就不需要再访问数据库。</p>
<p>比喻：啤酒和纸尿裤一起卖。</p>
<p>沃尔玛通过数据分析发现，在美国有婴儿的家庭中，母亲通常在家照顾孩子，父亲去超市买尿布。</p>
<p>父亲在买纸尿裤的时候，经常会搭配几瓶啤酒来奖励自己。因此，超市试图推出一种将啤酒和纸尿裤放在一起的促销手段，这实际上大大增加了纸尿裤和啤酒的销量。</p>
<p><strong>三、数据挖掘算法：AdaBoost</strong></p>
<p>AdaBoost原理</p>
<p>简单来说，多个弱分类器训练成强分类器。</p>
<p>将一系列弱分类器作为不同权重比组合的最终分类选择。</p>
<p>计算过程</p>
<p>1、基本权重初始化。</p>
<p>2、奖励权重矩阵，通过现有的分类器计算错误率，选择错误率最低的分类器。</p>
<p>3、通过分类器权重公式，减少正确的样本分布，增加错误的样本分布，获得新的权重矩阵和当前k轮的分类器权重。</p>
<p>4、将新的权重矩阵带入上述步骤2和3，重新计算权重矩阵。</p>
<p>5、迭代N轮，记录每轮最终分类器的权重，获得强分类器。</p>
<p>AdaBoost算法比喻说明</p>
<p>1、利用错题提高学习效率</p>
<p>做对的题，下次少做点，反正都会。</p>
<p>下次多做错题，集中在错题上。</p>
<p>随着学习的深入，错题会越来越少。</p>
<p>2、合理跨境提高利润</p>
<p>苹果公司，软硬件结合，占据了手机市场的大部分利润，两个领域的知识结合产生了新的收益。</p>
<p><strong>四、数据挖掘算法：C4.5(决策树)</strong></p>
<p>决策就是对一个问题有多个答案，选择答案的过程就是决策。</p>
<p>C4.5算法用于产生决策树，主要用于分类。</p>
<p>C4.5计算信息增益率(ID3算法计算信息增益)。</p>
<p>C4.5算法原理</p>
<p>C4.5算法选择最有效的方法对样本集进行分裂，分裂规则是分析所有属性的信息增益率。</p>
<p>信息增益率越大，意味着这个特征分类的能力越强，我们应该优先选择这个特征进行分类。</p>
<p>比喻说明：挑西瓜。</p>
<p>拿到一个西瓜，先判断它的线条。如果很模糊，就觉得不是好瓜。如果很清楚，就觉得是好瓜。如果稍微模糊一点，就考虑它的密度。如果密度大于一定值，就认为是好瓜，否则就是坏瓜。</p>
<p><strong>五、数据挖掘算法：CART(决策树)</strong></p>
<p>CART：Clasification And Regresion Tree，中文叫分类回归树，可以分类也可以回归。</p>
<p>什么是分类树？回归树？</p>
<p>分类树：处理离散数据，即数据类型有限的数据，输出样本类别。</p>
<p>回归树：可以预测连续值，输出一个值，值可以在一定范围内获得。</p>
<p>回归问题和分类问题的本质是一样的，就是对一个输入做一个输出预测，其区别在于输出变量的类型。</p>
<p>CART算法原理</p>
<p>CART分类树</p>
<p>类似于C4.5算法，但属性选择的指标是基尼系数。</p>
<p>基尼系数反映了样本的不确定性。基尼系数越小，样本之间的差异越小，不确定性越低。</p>
<p>分类是一个降低不确定性的过程。CART在构建分类树时，会选择基尼系数最小的属性作为属性划分。</p>
<p>回归树的CART</p>
<p>以均方误差或绝对值误差为标准，选择均方误差或绝对值误差最小的特征。</p>
<p>分类和回归数的比喻说明</p>
<p>分类：预测明天是阴、晴还是雨。</p>
<p>回归：预测明天的温度。</p>
<p>KNN算法比喻：近朱者赤，近墨者黑。</p>
<p><strong>九、数据挖掘算法：K-Means(聚类)</strong></p>
<p>K-means是一种无监督学习、生成指定K类的聚类算法，将每个对象分配到最近的聚类中心。</p>
<p>K-Means算法原理</p>
<p>1.随机选择K点作为分类中心点。</p>
<p>2.将每个点分配到最近的类，从而形成K类。</p>
<p>3.重新计算每个类别的中心点。比如同一类别有10个点，那么新的中心点就是这10个点的中心点，一个简单的方法就是取平均值。</p>
<p>K-Means算法比喻说明</p>
<p>1、选组长</p>
<p>每个人都随机选择K个组长，谁离得近，就是那个队列的人(计算距离，近的人聚在一起)。</p>
<p>随着时间的推移，组长的位置在变化(根据算法重新计算中心点)，直到选择真正的中心组长(重复，直到准确率最高)。</p>
<p>2、Kmeans和Knn的区别</p>
<p>Kmeans开班选组长，风水轮流转，直到选出最佳中心组长。</p>
<p>Knn小弟加队，离那个班比较近，就是那个班。</p>
<p><strong>十、数据挖掘算法：EM(聚类)</strong></p>
<p>EM的英语是ExpectationMaximization，因此EM算法又称最大期望算法，也是一种聚类算法。</p>
<p>EM和K-Means的区别:</p>
<p>EM是计算概率，KMeans是计算距离。</p>
<p>EM属于软聚类，同一样本可能属于多个类别；K-Means属于硬聚类，一个样本只能属于一个类别。因此，前者可以发现一些隐藏的数据。</p>
<p>EM算法原理</p>
<p>先估计一个大概率的可能参数，然后根据数据不断调整，直到找到最终确认参数。</p>
<p>EM算法比喻说明：菜称重</p>
<p>很少有人用称重菜肴，然后计算一半的重量来平分。</p>
<p>大多数人的方法是：</p>
<p>1、先把一部分分成菜A，然后把剩下的分成菜B。</p>
<p>2、观察菜A和B里的菜是否一样多，哪个多就匀一点到少。</p>
<p>3、然后观察碟子里的A和B是否一样多，重复，直到重量没有变化。</p>
<p><strong>数据仓库的基本概念、组成部分、主要模式</strong></p>
<p>数据仓库概念：</p>
<p>数据仓库是一个面向主题的、集成的、非易失的、随时间变化的，用来支持管理人员决策的数据集合，数据仓库中包含了粒度化的企业数据。</p>
<p>数据仓库的结构包含了4部分,分别是数据源、数据存储及管理、OLAP服务器和前端工具。</p>
<p><strong>1.数据源</strong>：数据源是数据仓库的基础，即系统的数据来源，通常包含企业的各种内部信息和外部信息。内部信息,例如存在操作数据库中的各种业务数据和自动化系统中包含的各类文档数据;外部信息，例如各类法律法规,市场信息、竞争对手的信息以及外部统计数据和其他相关文档等。</p>
<p> <strong>2.数据存储及管理</strong>：数据存储及管理是整个数据仓库的核心。数据仓库的组织管理方式决定了它有别于传统数据库，同时也决定了对外部数据的表现形式。针对系统现有的数据，进行抽取、清理并有效集成,按照主题进行组织。数据仓库按照数据的覆盖范围可以划分为企业级数据仓库和部门级数据仓库，也就是所谓的数据集市。数据集市可以理解为是一个小型的部门或者工作组级别的数据仓库。</p>
<p> <strong>3.OLAP服务器</strong>：OLAP服务器对需要分析的数据按照多维数据模型进行重组，以支持用户随时进行多角度、多层次的分析,并发现数据规律和趋势。</p>
<p> <strong>4.前端工具</strong>：前端工具主要包含各种数据分析工具、报表工具、查询工具数据挖掘工具以及各种基于数据仓库或数据集市开发的应用。</p>
<h2 id="6-数据分析基础知识"><a href="#6-数据分析基础知识" class="headerlink" title="6 数据分析基础知识"></a>6 数据分析基础知识</h2><h3 id="6-1-数据及其分类"><a href="#6-1-数据及其分类" class="headerlink" title="6.1 数据及其分类"></a>6.1 数据及其分类</h3><p><strong>（1）数据分类</strong></p>
<p>按照数据的性质来分，数据可以分为：</p>
<p>a．定位的，如坐标类的数据（经度、纬度等）；</p>
<p>b．定性的，如表示事物属性的数据（如性别，学历等）；</p>
<p>c．定量的，反映事物数量特征的数据（如长度、面积、体积等几何量或重量、速度等物理量）；</p>
<p>d．定时的，反映事物时间特性的数据（如年、月、日、时、分、秒等）。</p>
<p>按照数据的表现形式可以分为：</p>
<p>a．数字数据，如各种统计或量测数据。数字数据在某个区间内是离散的值；</p>
<p>b．模拟数据，由连续函数组成，是指在某个区间连续变化的物理量，又可以分为图形数据（如点、线、面）、符号数据、文字数据和图像数据等，如声音的大小和温度的变化等。</p>
<p>● 按照记录方式又可以分为：</p>
<p>地图、表格、影像、磁带、纸带等。</p>
<p><strong>（2）数据结构</strong></p>
<p>数据结构主要有五种类型：</p>
<p>1、向量：用来创建数值型、字符型、逻辑型数据的一维数组，用函数c()创建，单个向量必须拥有相同的数据类型。</p>
<p>2、矩阵：二位数组，只是每个元素都相同的模式，用函数matrix()创建</p>
<p>3、数组:与矩阵类似，但是维度大于2，用函数array()创建。</p>
<p>4、数据框：不同的列可包含不同类型数据，是最常处理的数据结构，用函数date.frame()创建</p>
<p>5、列表：以上各种数据结构的集合，多用于函数返回值</p>
<h3 id="6-2-数据预处理"><a href="#6-2-数据预处理" class="headerlink" title="6.2 数据预处理"></a>6.2 数据预处理</h3><p>（1）数据汇聚</p>
<p>（2）数据清洗</p>
<p><strong>缺失值处理</strong></p>
<p>在信息和数据获取的过程中，可能会存在数据的丢失和空缺，数据分析前需要识别缺失值；基于变量的分布特性和重要性，缺失值处理方法主要有：</p>
<ul>
<li>单变量填充</li>
</ul>
<p><em>删除变量：</em>适用于缺失率较高但不重要的变量</p>
<p><em>默认值填充</em>：将缺失值用一个常数替代</p>
<p><em>统计量填充</em>：适用于变量缺失率较低的情况，可以根据数据的分布进行填充。比如数据符合均匀或正态分布，可用均值填充，如果数据分布存在倾斜，可用中位数填充</p>
<p><em>众数填充</em>：适用于字符串、整数等类型的变量</p>
<p><em>哑变量填充</em>：如果变量是离散型且不同值较少，可转换成哑变量。比如性别SEX变量，存在male,female,NA三个值，可将该列转换为IS_MALE,IS_FEMALE,IS_NA三列。若变量存在大量不同的值，可根据每个值的频数将较小的值合并为一类“other”。</p>
<ul>
<li>多变量填充</li>
</ul>
<p><em>插值填充</em>：随即插值、多重差补法、热卡填充、拉格朗日差值、牛顿插值</p>
<p><em>模型填充</em>：使用最近邻、逻辑回归、随即森林等对缺失值进行预测</p>
<p>1.填补遗漏的数据值</p>
<p>在数据收集的过程中，我们难免会遇到数据缺失的情况。对于缺失的数据，一般不建议直接删除，通常会采用常数、中位数/众数、随机 数或者模型的方法进行填补。</p>
<p>常数法</p>
<p>最简单，但是相对来说也比较主观，可能带来无效信息。因此使用较少，通常用于标记缺失值。</p>
<p>中位数或者众数 都是描述数据集的集中趋势的指标。因此填补的数值也比较接近数据集的共性特征，因此填补后的数据集集中趋势会更加明显，结果也 会偏向乐观。因此通常应用于有少量缺失值的情况。</p>
<p>随机数方法</p>
<p>避免了主观判断，分布也更加自然。适用于有大量缺失值的情况。但是对生成随机值的方法依赖性比较强，如果选择不恰当，可能生成 大量的无意义数据。</p>
<p>模型法</p>
<p>相对来说，取值最合理的一种方法。但是由于计算复杂，因此除非对数据的质量特别敏感，一般很少采用。</p>
<p>2.平滑有噪声数据</p>
<p>在一些变量中可能存在随机的错误或者误差，这个时候我们需要平滑这些有噪声的数据，避免给最后结果造成影响。一般平滑有噪声数 据的方法有分箱法、聚类法，也可以通过移动平均的方法来进行过滤平滑。</p>
<p>3.识别或去除异常值 变量中也可能存在异常值。我们可以通过数值或者画图的方法来进行判断。对于单一变量，我们可以通过均值、分位数、对称分布的经 验法则或者切比雪夫不等式来进行判断。 如果需要识别两个或者以上变量组合是否存在异常值，我们则可以采用聚类或者散点图的方式来进行。 但是需要注意的是，异常值并不总是需要去除的。因为有时候异常值也代表了数据集的特征。具体是否需要去除或者调整，要根据项目 的实际情况和使用的模型要求来进行判断。</p>
<p>4.解决不一致问题</p>
<p>在数据集成部分，我们也提到过，来源不同的数据，名称、定义、长度、单位等都有可能存在不同，在使用前，我们需要对这些数据进 行检查和统一。避免由于不一致带来结果的误差。</p>
<p>5.查重</p>
<p>有些时候，数据集合中可能会存在重复的数据。因此在使用数据集前，我们也要进行查重，避免造成信息的干扰</p>
<p>（3）数据融合</p>
<p>（4）数据转换</p>
<p><strong>归一化：</strong>缩放到更小的指定范围内</p>
<p><strong>最小-最大归一化</strong></p>
<p><strong>z-score 归一化</strong></p>
<p><strong>十进制归一化</strong></p>
<p><strong>聚合</strong>：汇总、数据立方体构建</p>
<h3 id="6-3-数据分析方法"><a href="#6-3-数据分析方法" class="headerlink" title="6.3 数据分析方法"></a>6.3 数据分析方法</h3><p>（1）概率统计应用</p>
<p>（2）图论应用</p>
<p>（3）组合分析</p>
<p>（4）算法的选择与应用：排序算法、查找算法、数值计算字符串处理、数据压缩算法、递归算法、图的相关算法等</p>
<p>（5）运筹方法：网络计划技术、线性规划、预测、决策</p>
<p>（6）数学建模</p>
<h3 id="6-4-大数据分析"><a href="#6-4-大数据分析" class="headerlink" title="6.4 大数据分析"></a>6.4 大数据分析</h3><p>（1）基本数据定义操作</p>
<p>（2）插入、修改、删除等数据操作</p>
<p>（3）多表数据关联查询操作</p>
<p>（4）常用函数</p>
<h2 id="7-云计算基础知识"><a href="#7-云计算基础知识" class="headerlink" title="7 云计算基础知识"></a>7 云计算基础知识</h2><h3 id="7-1-云计算服务类型"><a href="#7-1-云计算服务类型" class="headerlink" title="7.1 云计算服务类型"></a>7.1 云计算服务类型</h3><p>（1）云计算的背景与概念</p>
<p>（2）云计算分层概念</p>
<h3 id="7-2-云计算核心技术"><a href="#7-2-云计算核心技术" class="headerlink" title="7.2 云计算核心技术"></a>7.2 云计算核心技术</h3><p>（1）虚拟化技术以及概念</p>
<p>（2）计算虚拟化技术</p>
<p>（3）存储虚拟化技术</p>
<p>（4）网络虚拟化技术</p>
<h2 id="8-大数据基础知识"><a href="#8-大数据基础知识" class="headerlink" title="8 大数据基础知识"></a>8 大数据基础知识</h2><h3 id="8-1-大数据的概念"><a href="#8-1-大数据的概念" class="headerlink" title="8.1 大数据的概念"></a>8.1 大数据的概念</h3><h3 id="8-2-分布式计算框架"><a href="#8-2-分布式计算框架" class="headerlink" title="8.2 分布式计算框架"></a>8.2 分布式计算框架</h3><h3 id="8-3-大数据生态组件"><a href="#8-3-大数据生态组件" class="headerlink" title="8.3 大数据生态组件"></a>8.3 大数据生态组件</h3><h2 id="9-网络信息安全基础知识"><a href="#9-网络信息安全基础知识" class="headerlink" title="9 网络信息安全基础知识"></a>9 网络信息安全基础知识</h2><h3 id="9-1-信息安全基本概念，信息系统的安全保护，安全管理措施"><a href="#9-1-信息安全基本概念，信息系统的安全保护，安全管理措施" class="headerlink" title="9.1 信息安全基本概念，信息系统的安全保护，安全管理措施"></a>9.1 信息安全基本概念，信息系统的安全保护，安全管理措施</h3><h3 id="9-2-计算机病毒防治，计算机犯罪的防范，网络入侵手段及其防范"><a href="#9-2-计算机病毒防治，计算机犯罪的防范，网络入侵手段及其防范" class="headerlink" title="9.2 计算机病毒防治，计算机犯罪的防范，网络入侵手段及其防范"></a>9.2 计算机病毒防治，计算机犯罪的防范，网络入侵手段及其防范</h3><h3 id="9-3-加密与解密机制，认证（数字签名、身份认证），私有信息保护"><a href="#9-3-加密与解密机制，认证（数字签名、身份认证），私有信息保护" class="headerlink" title="9.3 加密与解密机制，认证（数字签名、身份认证），私有信息保护"></a>9.3 加密与解密机制，认证（数字签名、身份认证），私有信息保护</h3><p>1.加密解密原理</p>
<p>(1)Hash算法和数字签名原理</p>
<p>(2)对称与非对称加密算法原理</p>
<p>(3)字典穷举原理</p>
<p>(4)彩虹表原理</p>
<p>(5)常用的解密站点与工具</p>
<p>2.加密文件的识别、查找方法</p>
<p>(1)常见“哈西+盐”的特征和识别方法</p>
<p>(2)常见文件加密工具的特点和识别方法</p>
<p>(3)常见磁盘加密的特点和识别方法</p>
<p>3.密码破解技术及工具的使用方法</p>
<p>(1)暴力破解技术及工具</p>
<p>(2)基于数据字典破解技术</p>
<p>(3)基于社会工程学破解技术</p>
<p>(4)数据库密码破解</p>
<p>(5)Windows的密码移除</p>
<p>4.代码混淆加密与解密</p>
<p>(1)asp混淆加密</p>
<p>(2)php混淆加密</p>
<p>(3)css/js混淆加密</p>
<p>(4)VBScript.Encode混淆加密</p>
<p>(5)ppencode</p>
<p>(6)rrencode</p>
<p>(7)jjencode/aaencode</p>
<p>(8)JSfuck</p>
<p>(9)jother</p>
<h3 id="9-4-可用性保障（备份与恢复）、容灾"><a href="#9-4-可用性保障（备份与恢复）、容灾" class="headerlink" title="9.4 可用性保障（备份与恢复）、容灾"></a>9.4 可用性保障（备份与恢复）、容灾</h3><h3 id="9-5-系统可靠性分析评价"><a href="#9-5-系统可靠性分析评价" class="headerlink" title="9.5 系统可靠性分析评价"></a>9.5 系统可靠性分析评价</h3><h3 id="9-6-计算机系统性能评测方法"><a href="#9-6-计算机系统性能评测方法" class="headerlink" title="9.6 计算机系统性能评测方法"></a>9.6 计算机系统性能评测方法</h3><h3 id="9-7-网络安全和等级保护"><a href="#9-7-网络安全和等级保护" class="headerlink" title="9.7 网络安全和等级保护"></a>9.7 网络安全和等级保护</h3><p>1.流量分析识别网络安全威胁</p>
<p>(1)网络监听</p>
<p>(2)口令破解</p>
<p>(3)拒绝服务攻击</p>
<p>(4)漏洞攻击（缓冲区溢出原理、系统漏洞、应用软件漏洞）</p>
<p>(5)僵尸网络</p>
<p>(6)网络钓鱼</p>
<p>(7)网络欺骗</p>
<p>(8)网站安全威胁（SQL注入漏洞、跨域攻击、命令执行漏洞、文件漏洞等）</p>
<p>2.常见漏洞的利用方法</p>
<p>3.主流渗透测试和扫描工具的使用</p>
<p>4.主流数据库语句以及SQL注入漏洞手工测试及绕过方法</p>
<p>5.常见的漏洞原理和利用方式</p>
<p>6.主流中间件的常见安全隐患及加固方式</p>
<p>7.恶意代码、文件传播方式判断和路径追溯</p>
<p>8.通过Apache、IIS日志分析网络入侵行为</p>
<p>9.XSS漏洞手工测试方法</p>
<h3 id="9-8-安全加固和渗透测试"><a href="#9-8-安全加固和渗透测试" class="headerlink" title="9.8 安全加固和渗透测试"></a>9.8 安全加固和渗透测试</h3>
                
              </div>
            
            <hr/>
            <div>
              <div class="post-metas my-3">
  
    <div class="post-meta mr-3 d-flex align-items-center">
      <i class="iconfont icon-category"></i>
      

<span class="category-chains">
  
  
    
      <span class="category-chain">
        
  <a href="/hello_lixi.gitee.io/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/" class="category-chain-item">计算机基础知识</a>
  
  

      </span>
    
  
</span>

    </div>
  
  
    <div class="post-meta">
      <i class="iconfont icon-tags"></i>
      
        <a href="/hello_lixi.gitee.io/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E5%A4%8D%E4%B9%A0-%E5%AD%A6%E4%B9%A0/">#计算机基础知识复习+学习</a>
      
    </div>
  
</div>


              
  

  <div class="license-box my-3">
    <div class="license-title">
      <div>计算机基础知识</div>
      <div>https://xistudycode.gitee.io/hello_lixi.gitee.io/2022/12/09/计算机基础知识/</div>
    </div>
    <div class="license-meta">
      
        <div class="license-meta-item">
          <div>作者</div>
          <div>Mr.LI</div>
        </div>
      
      
        <div class="license-meta-item license-meta-date">
          <div>发布于</div>
          <div>2022年12月9日</div>
        </div>
      
      
      
        <div class="license-meta-item">
          <div>许可协议</div>
          <div>
            
              
              
                <a target="_blank" href="https://creativecommons.org/licenses/by/4.0/">
                  <span class="hint--top hint--rounded" aria-label="BY - 署名">
                    <i class="iconfont icon-by"></i>
                  </span>
                </a>
              
            
          </div>
        </div>
      
    </div>
    <div class="license-icon iconfont"></div>
  </div>



              
                <div class="post-prevnext my-3">
                  <article class="post-prev col-6">
                    
                    
                      <a href="/hello_lixi.gitee.io/2022/12/27/Mybatis-Plus%E7%AC%94%E8%AE%B0/" title="Mybatis-plus的增删改查，一对多查询">
                        <i class="iconfont icon-arrowleft"></i>
                        <span class="hidden-mobile">Mybatis-plus的增删改查，一对多查询</span>
                        <span class="visible-mobile">上一篇</span>
                      </a>
                    
                  </article>
                  <article class="post-next col-6">
                    
                    
                      <a href="/hello_lixi.gitee.io/2022/12/06/dubbo+nacos+rpc/" title="基于dubbo rpc框架集成nacos注册中心">
                        <span class="hidden-mobile">基于dubbo rpc框架集成nacos注册中心</span>
                        <span class="visible-mobile">下一篇</span>
                        <i class="iconfont icon-arrowright"></i>
                      </a>
                    
                  </article>
                </div>
              
            </div>

            
          </article>
        </div>
      </div>
    </div>

    <div class="side-col d-none d-lg-block col-lg-2">
      
  <aside class="sidebar" style="margin-left: -1rem">
    <div id="toc">
  <p class="toc-header"><i class="iconfont icon-list"></i>&nbsp;目录</p>
  <div class="toc-body" id="toc-body"></div>
</div>



  </aside>


    </div>
  </div>
</div>





  



  



  



  



  







    

    
      <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
      </a>
    

    
      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v" for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>

    

    
  </main>

  <footer>
    <div class="footer-inner">
  
    <div class="footer-content">
       <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>xBolg</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>@Fluid</span></a> 
    </div>
  
  
    <div class="statistics">
  
  

  
    
      <span id="busuanzi_container_site_pv" style="display: none">
        总访问量 
        <span id="busuanzi_value_site_pv"></span>
         次
      </span>
    
    
      <span id="busuanzi_container_site_uv" style="display: none">
        总访客数 
        <span id="busuanzi_value_site_uv"></span>
         人
      </span>
    
    
  
</div>

  
  
  
</div>

  </footer>

  <!-- Scripts -->
  
  <script  src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js" ></script>
  <link  rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css" />

  <script>
    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
    NProgress.start()
    window.addEventListener('load', function() {
      NProgress.done();
    })
  </script>


<script  src="https://lib.baomitu.com/jquery/3.6.0/jquery.min.js" ></script>
<script  src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js" ></script>
<script  src="/hello_lixi.gitee.io/js/events.js" ></script>
<script  src="/hello_lixi.gitee.io/js/plugins.js" ></script>


  <script  src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
  <script>
    (function (window, document) {
      var typing = Fluid.plugins.typing;
      var subtitle = document.getElementById('subtitle');
      if (!subtitle || !typing) {
        return;
      }
      var text = subtitle.getAttribute('data-typed-text');
      
        typing(text);
      
    })(window, document);
  </script>




  
    <script  src="/hello_lixi.gitee.io/js/img-lazyload.js" ></script>
  




  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/tocbot/4.18.2/tocbot.min.js', function() {
    var toc = jQuery('#toc');
    if (toc.length === 0 || !window.tocbot) { return; }
    var boardCtn = jQuery('#board-ctn');
    var boardTop = boardCtn.offset().top;

    window.tocbot.init(Object.assign({
      tocSelector     : '#toc-body',
      contentSelector : '.markdown-body',
      linkClass       : 'tocbot-link',
      activeLinkClass : 'tocbot-active-link',
      listClass       : 'tocbot-list',
      isCollapsedClass: 'tocbot-is-collapsed',
      collapsibleClass: 'tocbot-is-collapsible',
      scrollSmooth    : true,
      includeTitleTags: true,
      headingsOffset  : -boardTop,
    }, CONFIG.toc));
    if (toc.find('.toc-list-item').length > 0) {
      toc.css('visibility', 'visible');
    }

    Fluid.events.registerRefreshCallback(function() {
      if ('tocbot' in window) {
        tocbot.refresh();
        var toc = jQuery('#toc');
        if (toc.length === 0 || !tocbot) {
          return;
        }
        if (toc.find('.toc-list-item').length > 0) {
          toc.css('visibility', 'visible');
        }
      }
    });
  });
</script>


  <script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>

  <script>Fluid.plugins.codeWidget();</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/anchor-js/4.3.1/anchor.min.js', function() {
    window.anchors.options = {
      placement: CONFIG.anchorjs.placement,
      visible  : CONFIG.anchorjs.visible
    };
    if (CONFIG.anchorjs.icon) {
      window.anchors.options.icon = CONFIG.anchorjs.icon;
    }
    var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
    var res = [];
    for (var item of el) {
      res.push('.markdown-body > ' + item.trim());
    }
    if (CONFIG.anchorjs.placement === 'left') {
      window.anchors.options.class = 'anchorjs-link-left';
    }
    window.anchors.add(res.join(', '));

    Fluid.events.registerRefreshCallback(function() {
      if ('anchors' in window) {
        anchors.removeAll();
        var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
        var res = [];
        for (var item of el) {
          res.push('.markdown-body > ' + item.trim());
        }
        if (CONFIG.anchorjs.placement === 'left') {
          anchors.options.class = 'anchorjs-link-left';
        }
        anchors.add(res.join(', '));
      }
    });
  });
</script>


  
<script>
  Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
    Fluid.plugins.fancyBox();
  });
</script>


  <script>Fluid.plugins.imageCaption();</script>

  <script  src="/hello_lixi.gitee.io/js/local-search.js" ></script>

  <script defer src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" ></script>





<!-- 主题的启动项，将它保持在最底部 -->
<!-- the boot of the theme, keep it at the bottom -->
<script  src="/hello_lixi.gitee.io/js/boot.js" ></script>


  

  <noscript>
    <div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div>
  </noscript>
</body>
</html>
